package org.chen.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.time.LocalDateTime;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MovieTemplateDTO {
    // 主键，更新时使用
    private Long id;

    @NotBlank(message = "模板名称不能为空")
    @Size(max = 100, message = "模板名称长度不能超过100字符")
    private String templateName;
    
    @NotBlank(message = "模板内容不能为空")
    private String templateContent;
    
    @Size(max = 500, message = "描述长度不能超过500字符")
    private String description;

    // 是否启用
    private Boolean isEnabled;

    // 创建时间，返回列表时使用
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    // 更新时间，返回列表时使用
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    // 添加用于分页查询的参数
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class PageQuery {
        @Builder.Default
        private Integer current = 1;

        @Builder.Default
        private Integer size = 10;

        private String templateName;
    }

    // 添加模板验证的请求DTO
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class ValidateRequest {
        @NotBlank(message = "模板内容不能为空")
        private String templateContent;
    }
}